import axios from 'axios';

// 创建axios实例
const request = axios.create({
    baseURL: 'http://jingxun.kuxia.top', // 设置后端服务的基础URL
    timeout: 10000, // 请求超时时间
    headers: {
        'Content-Type': 'application/json',
    },
});


// 请求拦截器
request.interceptors.request.use(
    (config) => {
        // 在发送请求之前做些什么
        // 比如可以添加token等
        // const token = localStorage.getItem('token');
        // if (token) {
        //   config.headers.Authorization = `Bearer ${token}`;
        // }
        return config;
    },
    (error) => {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);

// 响应拦截器
request.interceptors.response.use(
    (response) => {
        // 对响应数据做点什么
        const res = response.data;

        // 根据实际业务需求处理响应数据
        // 如果返回的状态码为200，说明接口请求成功
        if (response.status === 200) {
            return res;
        } else {
            // 可以统一处理错误
            return Promise.reject(new Error(res.message || 'Error'));
        }
    },
    (error) => {
        // 对响应错误做点什么
        console.error('请求错误:', error);

        // 根据错误类型给出相应提示
        if (error.response) {
            switch (error.response.status) {
                case 401:
                    // 未授权
                    break;
                case 404:
                    // 请求地址不存在
                    break;
                case 500:
                    // 服务器内部错误
                    break;
                default:
                // 其他错误
            }
        } else if (error.request) {
            // 请求已发出但没有收到响应
            console.error('网络错误，请检查网络连接');
        } else {
            // 其他错误
            console.error('请求失败', error.message);
        }

        return Promise.reject(error);
    }
);

export default request;